Глава 9

Искусственный интеллект

Искусственный интеллект (далее ИИ) - это попытка смоделировать мысли и поведение человека при помощи компьютера. В компьютерных играх роль ИИ сводится к тому, чтобы создать у играющих ощущение, будто они играют против реальных, разумных соперников. Программирование ИИ всегда было одной из самых сложных проблем при написании игр, поэтому мы решили не смешивать эту тему с другими вопросами, описанными в предыдущей главе, а посвятить созданию искусственного интеллекта отдельную главу.

Еще одна причина нашего пиетета к ИИ: мы хотим подчеркнуть, что одиночные игры по-прежнему заслуживают самого пристального внимания. Растущая не по дням, а по часам популярность многопользовательских развлечений наводит на грустные мысли о том, что разработчики, бросив все силы на отладку сетевого кода, могут попросту забыть о необходимости совершенствования ИИ. В конце концов, если ИИ будет действовать предсказуемо или, не дай бог, неразумно, большинство игроков предпочтут сетевые состязания с живыми соперниками. И задача - сделать игру, обладающую не только выдающимся сетевым механизмом, но и сверхреалистичной системой искусственного интеллекта (вы не забыли о тех, кто просто не может или не хочет позволить себе игру по сети?) - так никогда и не будет решена.

Призвав на помощь мощную группу специалистов, работающих над созданием искусственного интеллекта в разных игровых жанрах, мы обсудим здесь различные виды ИИ и приемы его создания.

Брайан Рейнольдс (Brian Reynolds), Firaxis Games

Один из лучших учеников Сида Мейера (Sid Meier), Брайан Рейнольдс принимал участие в создании таких классических стратегий, как Colonization и Civilization H. На момент написания этой книги Брайан являлся вице-президентом компании Firaxis Games по разработке программного обеспечения. Последняя его работа - военно-историческая игра Antietam! «Вопреки бытующему мнению, - говорит Брайан, - создание ИИ для компьютерной игры обходится без черной магии. Совершенно не обязательно доставать какие-то запатентованные алгоритмы или знакомиться с результатами последних исследований в области нейронных сетей. Все, что вам нужно, - это немного вдохновения и огромное упорство». В следующих трех параграфах описаны некоторые из излюбленных методов Брайана Рейнольдса.

Итеративный процесс разработки

Прежде всего в ходе создания ИИ, как и при создании самой игры, необходимо использовать «итеративный процесс разработки». Начните с простого моделирования передвижения вражеских фигурок, пусть даже ваш алгоритм окажется не сложнее, чем «switch(rnd(4))». Затем попробуйте сыграть против вашего ИИ и понаблюдайте за тем, какие ходы он делает. Дождитесь, пока система совершит какую-нибудь глупость (в первый раз это случится очень быстро), а затем подумайте вот над чем: а) какие ошибки допустил компьютер (предположим, пустил танки через лес, что замедлило их передвижение, или из всех родов войск начал «строить» исключительно артиллерию); б) как бы вы сами поступили на его месте (двигали бы танки по дороге, в разумных пропорциях «строили» пехоту, артиллерию, танки и самолеты...); в) какие данные заставили вас (помогли вам) принять это решение (юниты быстрее передвигаются по дороге; у вас уже имелась пушка, но не было ни одного пехотинца). Измените алгоритм с учетом этих данных.

Теперь начните игру заново - до очередной ошибки, после чего весь процесс повторяется. Раз от раза ваш ИИ будет становиться все умнее и умнее. Так на практике выглядит пресловутая «самообучающаяся система». Благодаря таким многократно повторяющимся циклам игры и исправления кода, ИИ набирает опыт и начинает играть все лучше и лучше.

Чтобы проиллюстрировать свою идею, Брайан Рейнольдс рассказал нам о том, как он, будучи молодым программистом, работал над своей первой игрой (Colonization).

По правде сказать, когда пришло время приступать к работе над искусственным интеллектом, я немного побаивался. Игра к тому моменту в общих чертах уже была готова: в нее можно было как-то играть, передвигать отряды, но ИИ совершенно не знал, как выполнять какие-либо действия. С чего же начать? Я до сих пор помню совет, данный мне Сидом Мейером: «Сначала научи компьютер делать один ход. Затем научи его делать два хода, и лишь потом думай о том, чтобы он сделал 10 ходов».

Брайан Рейнольдс рекомендует играть в создаваемую игру и наблюдать за поведением искусственного интеллекта. Когда система выкинет очередную глупость, определите, что вы от нее хотите, а затем вернитесь назад и исправьте свой алгоритм. Повторяйте этот процесс столько раз, сколько потребуется. (Приводится с разрешения компании Firaxis Games, Inc.)

Начните с простого

Начните с тривиальных компоновочных блоков. Например, для стратегической игры сначала полезно написать стандартную процедуру, задающую маршрут перемещения любого объекта из пункта «А» в пункт «Б». Обычно это называют алгоритмом поиска пути (или перемещения). Создание процедуры поиска пути - весьма подходящий замкнутый проект для начала работы: нужно только научить объект, как переходить «отсюда» «туда», и поначалу не обращать внимание на то, как он будет выбирать это самое «туда». Я не говорю, что написать хорошую процедуру поиска пути просто, но всегда легче начать работу с понятной задачи, а затем перейти к более сложной. Как только процедура поиска пути будет готова, можно приступать к другой задаче - определению, в какое место карты должны двигаться ваши фигурки. И теперь вам уже не надо будет заботиться о том, как именно они туда доберутся.

Процедура поиска пути отвечает за перемещение одного или нескольких юнитов из пункта «А» в пункт «Б», а также за выбор наиболее рационального маршрута движения. Вам когда-нибудь приходилось замечать, как в старых стратегиях, идущих в реальном времени, отряды застревают на полпути или выбирают длинные и неудачные маршруты?

Умножение и деление на двойку

В самом начале своей карьеры я научился у Сила Мейера еще одному замечательному приему. Подобно другим нашим уловкам, он одинаково хорошо применим и к разработке игр, и к созданию искусственного интеллекта. Метод состоит в следующем: если у вас есть какое-нибудь значение или эффект, и вы хотите его скорректировать, удвойте его или поделите пополам. Например, если танки кажутся вам слишком дешевыми, удвойте их стоимость. Не пытайтесь увеличивать значение с 10 до 11, гадая о том, возымеет ли это нужный эффект. Сразу «поднимите ставки» до 20, даже если это и кажется не совсем уместным. А теперь все внимание на игру: изменения от удорожания танков видны невооруженным взглядом - стало быть, вы получили четкое представление о роли этого параметра. Цена слишком велика? Отрегулируйте ее, уменьшив значение до 15. И так далее. Если вам кажется, что компьютер создает слишком много пехотинцев, сократите вероятность их производства сразу вдвое. Я помню сотни случаев, когда я увеличивал или уменьшал вдвое тот или иной параметр, ожидая увидеть слишком сильные изменения, а на поверку выходило, что для достижения желаемого эффекта нужно было еще раз умножать или делить на двойку. И снова повторюсь: итеративный метод здесь незаменим.

Брайан закончил интервью следующим советом: «Придерживайтесь простого алгоритма: попробовал - исправил - повторил. И не ошибетесь».

Марио Гримани (Mario Grimani), Ensemble Studios

Перед тем как перейти в Ensemble Studios, Марио Гримани работал в студии 7th Level над стратегией Dominion: Storm Over Gift 3 и другими играми. Сейчас он является штатным сотрудником компании Ensemble Studios по искусственному интеллекту (на момент написания книги Марио трудился над «железными мозгами» для игры Age of Empires II: The Age of Kings).

На что нужно прежде всего обращать внимание, работая над системой ИИ? Вот ответ Марио Гримани:

• Помните, что количество времени и усилий, затраченных на разработку ИИ, не всегда прямо пропорционально тому, как результат будет воспринят пользователем.

• Разрабатывайте искусственный интеллект итеративным путем. Создайте приблизительный вариант системы, проверьте его работу и начните вносить улучшения с той части, которая функционирует хуже всего.

• Сделайте систему максимально гибкой. Скорее всего, над игрой, для которой вы пишете ИИ, еще идет работа, поэтому у вас должна быть возможность изменять систему в ходе выполнения проекта.

Искусственный интеллект игры Age of Empires II: The Age of Kings позволяет контролировать поведение управляемого компьютером игрока с помощью легкого в использовании языка внешних команд. Компьютерные игроки могут играть как против людей, так и друг против друга. Это позволяет нам легко менять поведение ИИ в процессе разработки игры, а также дополнять систему на более поздних стадиях проекта.

Марио Гримани советует составлять игровой ИИ из отдельных программных модулей, так как вам, вероятно, еще придется возвращаться к ним и вносить изменения в течение цикла разработки. (Приводится с разрешения компании Microsoft.)

Далее Марио описал различные виды ИИ и некоторые проблемы, возникающие при его программировании.

Под термином «искусственный интеллект», широко использующимся в компьютерных играх, подразумевается набор решений для самых разных задач: от моделирования человеческого поведения персонажей ролевых игр до поиска пути в стратегиях в реальном времени.

Основные задачи, решаемые ИИ в стратегиях в реальном времени, - это поиск пути для отдельной боевой единицы, все прочие вопросы поведения боевой единицы, не связанные с движением, поведение группы юнитов и ИИ компьютерного игрока в целом. Последний сам по себе состоит из множества частей, которые определяют стратегию и тактику боя, назначают места для построек, оценивают угрозу, исходящую от противника, анализируют местность, а также выполняют массу других функций.

Некоторые из решаемых искусственным интеллектом задач требуют намного больше внимания, чем другие. Любая задача, основанная на четких математических данных, решается значительно проще, чем та, для которой приходится прибегать к общим, абстрактным понятиям. К сожалению, именно такие проблемы часто оказываются слабым местом ИИ, позволяющим человеку без особого труда обыгрывать компьютер.

В качестве примера Марио Гримани указывает на одно общее затруднение, которое возникает при создании стратегий в реальном времени.

Человеку нетрудно распознать, легко ли будет защитить определенную область карты. Для компьютерного игрока это весьма сложная задача. С другой стороны, управляемый компьютером игрок гораздо лучше человека контролирует действия всех боевых единиц и легко просчитывает их характеристики.

Итак, не думает ли Марио, что с ростом популярности сетевых игр и игр по Интернету уменьшится потребность в разработке систем ИИ?

Да, многопользовательские игры развиваются с ошеломляющей скоростью. Одна из причин - доступность «быстрого» Интернета. Но это не означает, что сетевые игры заменят искусственный интеллект. Ведь это совершенно разные вещи. Лично я получаю огромное удовольствие от сетевых игр, в которые играю уже два года. В то же время меня интересуют и одиночные игры.

Тоби Симпсон (Toby Simpson), CyberLife Technology

Тоби Симпсон - художественный директор всех проектов серии Creatures, созданных студией CyberLife Technology, расположенной в Кембридже (Великобритания). В качестве продюсера игр Creatures 1-3 Тоби приходилось работать над созданием принципиально нового типа ИИ, до сих пор не встречавшегося в других игровых жанрах. Дело в том, что вся изюминка сериала Creatures заключена в обучении виртуальных питомцев и уходе за ними.

Вам когда-нибудь хотелось узнать, почему эти милые норны, главные герои Creatures, ведут себя совсем как живые, причем каждый имеет собственный характер и сходные с человеческими эмоции и желания? Все вопросы к Тоби Симпсону, автору четырех заповедей, согласно которым «оживить» можно даже неодушевленные предметы.

Прежде всего освободитесь от стереотипного представления, будто ИИ - это некая отдельная сущность, которую кто-то специально программирует. Система ИИ, навешиваемая на игру в качестве таинственного «черного ящика», обычно очень поверхностна, полна ошибок и несогласованностей. Создание жизнеспособных систем для компьютерных игр требует совершенно иного подхода. И если бы меня попросили выделить самые важные моменты в этом деле, я, наверное, упомянул бы следующее...

Моделируйте, но не имитируйте

Создание модели и имитация - два совершенно разных подхода к проблеме. Имитируя, вы просто пытаетесь отразить внешний вид образца, тогда как модель претендует на то, чтобы воспроизводить принципиальную структуру и механизмы, лежащие в основе системы. И модели, и имитации имеют, по сути, одну и ту же задачу, но модель при этом обладает рядом определенных преимуществ.

• В цели имитирующих систем не входит задача создания собственного «интеллекта», или механизма самоуправления, ведь какая-либо логическая взаимосвязь параметров системы и ее внешнего поведения там отсутствует.

• Модели обеспечивают свободу выбора, поскольку они не являются абстрактным воспроизведением системы, а построены на основе глубокого понимания ее сути, т.е. на взгляде «изнутри». Имитации создаются на основе внешних представлений и в принципе не способны достичь полной достоверности.

• Модели имеют возможность расширения, их компоненты могут быть взаимозаменяемы. Можно разобрать модель и перестроить ее заново, чего никогда не удастся сделать с имитацией.

Занимайтесь структурой, а не поведением

Постарайтесь избавиться от привычки поверхностно подходить к проблемам. Вместо этого продумайте структуру программы, которая позволит вам добиться нужного поведения. Чтобы воспроизвести функциональность системы, вовсе не обязательно полностью понимать, как она работает! Представляя компьютер в виде некоторого набора отдельных механизмов, а не единого устройства обработки данных, вы уже делаете шаг в правильном направлении. Сегодня многие создают игровые движки со встроенными с самого начала «автономными агентами» (нужно отметить, что слово «агент» часто употребляется неправильно) - как расширение объектно-ориентированного подхода - а значит, переносят основное внимание с программы на данные. Такой сдвиг в сознании происходит везде, поскольку люди понимают, что создание сложных виртуальных миров развлекательной индустрии без изменения подхода практически невозможно.

Природа - великий подсказчик

Живой мозг до сих пор является самым потрясающим вычислительным устройством на нашей планете. Его способность адаптироваться к собственному уникальному набору задач, которые он сам себе и ставит, обобщать, моментально узнавать разницу между положительным и отрицательным никогда еще не была реализована в компьютере. Более того, разберите человека на составляющие, и вы увидите, как все просто: 10 триллионов простых клеток, построенных из 100 тысяч генов. Мы изучили строение клеток, но так и не можем понять, почему, упорядоченные определенным образом, они образуют живое разумное существо. Это самый сложный из известных нам процессов: 10 триллионов простых «агентов», действуя совместно, приводят к появлению сознания. При этом отсутствует центральная управляющая клетка. Нет никакой «главной программы».

Это способно многому научить, ведь если мы можем смоделировать, к примеру, мост или танк, то что нам мешает взять за основу строительные блоки биологического происхождения и конструировать из них искусственные организмы? Если вы хотите иметь в непротиворечивом виртуальном мире правдоподобную искусственную личность, то только биологические процессы и структуры могут управлять такой сложной системой. В отличие от матери Природы у нас нет трех с половиной миллиардов лет для исследования и подгонки инструментальной программы, которая позволит заново изобрести колесо, и без того прекрасно работающее.

В играх серии Creatures система ИИ моделирует реальные биологические законы. Эти миловидные существа, норны, могут думать и самостоятельно обучаться, а если понадобится, могут даже обратиться к вам со своими нуждами и желаниями. (Приводится с разрешения компании CyberLife Technologies, Inc.)

Будьте профессионалом

Невозможно разработать профессиональное программное обеспечение без соответствующей профессиональной практики! Самые изощренные технологии не спасут вашу душу, если ваша работа плохо организована или никакой организации вообще нет. Будьте профессионалом! Если у вас нет системы контроля качества, создайте ее. Продумайте все: планирование, тестирование модулей, эффективность работ и надлежащую документацию. Придерживайтесь графика и не пытайтесь срезать углы - плохо выполненная работа обязательно скажется потом!

Чтобы больше узнать о «кибербиологии» Тоби Симпсона и особенностях применения ИИ в продуктах Creatures, посетите следующие вебсайты: www.cyberlife.co.uk, www.creatures.co.uk, www.creatures2.com, www.cyberbiology.org.

Скотт Орр (Scott Orr), EA Sports

Исполнительный продюсер компании EA Sports Скотт Орр не только способствовал выходу в свет серии футбольных игр Madden, но и курировал разработку других популярных лицензионных игр компании, например NHL Hockey, Andretti Racing, NASCAR Racing, NCAA College Football, March Madness и Knockout Kings. «Гуру» в области создания искусственного интеллекта, Скотт Орр не раз и не два упоминался в процессе работы над этой главой.

Реализм

«Прежде всего, - отмечает Скотт, - искусственный интеллект должен быть реалистичным».

Я подразумеваю под этим следующее: компьютерные игроки должны действовать и реагировать на происходящее так же, как действовали бы, оказавшись на их месте, живые люди. Вот почему во всех играх компании EA Sports у игроков есть рейтинги, определяющие их понимание обстановки на поле, быстроту действий, умение бросать или ловить. Кроме того, мы часто пользуемся советами профессиональных спортсменов и тренеров, которые помогают нам добиться реалистичности. Затрудняюсь сказать, сколько раз Джон Мадден (John Madden) смотрел заложенную нами в программу схему игры, всякий раз подбегая к доске, чтобы показать, как она должна выглядеть в действительности.

Скотт Орр убежден: игры EA Sports потому и вне конкуренции, что всегда архивнимательны к деталям. Ну что ж, хорошо. А если у разработчика нет денег или связей, чтобы привлечь в консультанты самого Джона Маддена или других профессиональных спортсменов? Выполнение следующих двух советов Скотта не потребует огромных затрат.

Реализм или увлекательность?

«Не забывайте соблюдать равновесие между реалистичностью игры и удовольствием от нее», - советует Скотт Орр.

Искусственный интеллект развился до такой степени, что при желании можно было бы сделать из компьютера суперчемпиона. Но вы уверены, что это именно то, чего ждут игроки и издатели (которые неминуемо начнут терять покупателей)? Многие разработчики прибегают к маленьким хитростям, чтобы позволить компьютеру на равных соревноваться с играющим. Это может заключаться и в предугадывании вашей стратегии, и в более быстром движении персонажей, за которых играет компьютер. Однако в играх компании ЕА Sports такого рода «жульничество» вам никогда не встретится.

Чем проще, тем лучше

Искусственный интеллект должен быть простым с точки зрения программирования. Скотт Орр считает: «Чем больше вычислений вы используете, тем сильнее загружен процессор». Как это влияет на игру?

Это может снизить частоту кадров, что, конечно, скажется на игре. Используйте подстановочные таблицы для хранения упорядоченных данных и ускорения вычислений. Чем выше скорость вычислений, тем сообразительнее будет искусственный интеллект.

Насколько, по сравнению с другими жанрами, трудно программировать ИИ для спортивной игры? «И труднее, и проще...» И вот почему:

С одной стороны, поскольку наши программы строятся на основе известных правил, нам проще решить, что же, собственно, нужно делать. С другой стороны, покупатели тоже знакомы с тем, как этот вид спорта выглядит в реальности, и поэтому уровень их ожиданий повышен. Нельзя махнуть рукой на поведение компьютерного игрока только потому, что вам не удается добиться точности в его действиях. Если что-то происходит в реальной игре, это должно присутствовать и в компьютерной, иначе пользователь быстро решит, что его в чем-то обделили. Мощность современных ПК вполне позволяет создавать достаточно сложный интеллект. Просто диву даешься, сравнивая то, что вытворяют компьютерные игроки теперь (речь об игровой тактике и согласованности действий), с тем, что они могли пять лет назад. И все это непрерывно совершенствуется, ведь мы разрабатываем игры для все более мощных машин и закладываем в них опыт, полученный нами в то время, когда мы создавали предыдущие игры.

Мы напомнили Скотту, что наша книга планируется как «библия» для начинающего разработчика, мечтающего, быть может, программировать ИИ для условно-бесплатных и бесплатных игр, а может, и для полноценных коммерческих продуктов. Когда Скотта Орра попросили дать какой-нибудь совет по программированию ИИ на языке Си++, он ответил так:

Мастерство приходит с опытом. Используйте разные подходы и смотрите на результаты. В конце концов, у вас получится что-нибудь, что будет работать лучше того, с чего вы начинали. Создайте библиотеку стандартных подпрограмм, которые вы часто используете. После этого (будем надеяться, что собранные в вашей библиотеке программы окажутся эффективными и экономичными) вы сможете гораздо успешнее пользоваться предыдущими наработками. Кроме того, не забывайте о выгоде использования подстановочных таблиц. Это уменьшает необходимый объем вычислений, ускоряет обновление экрана и сам процесс игры.

Марк Обейнел (Marc Aubanel), ЕА Sports

Познакомьтесь с еще одним сотрудником ЕА Sports: Марк Обейнел, продюсер прекрасно раскупаемых и всемирно известных футбольных игр серии FIFA (включая игры World Cup).

Марк считает, что для командных спортивных игр приходится программировать довольно сложные системы искусственного интеллекта, ведь компьютер одновременно имеет дело с несколькими персонажами. «Люди обладают невероятной интуицией, они чувствуют, как должно выполняться то или иное действие, - говорит Марк. - У компьютера такого чувства нет, поэтому необходимо научить его моделировать интуицию». По словам Марка, сложнее всего программировать ИИ для бейсбола. Этому есть несколько причин.

Дело в том, что у пользователя есть подсознательное представление о том, что должен делать игрок. Если запрограммированные в ИИ действия отличаются от этого представления, считайте свою работу неудовлетворительной. Допустим, игрок, находящийся на дальней стороне поля, ловит мяч слева. Что он предпримет дальше? Бросит мяч в «дом»? На вторую базу? На третью? Не будет бросать вообще? Как предусмотреть все эти варианты при программировании? Ведь во внимание должны быть приняты десятки факторов: сколько людей находится на каждой базе, сколько аутов на счету команды и так далее...

«В футболе, - считает Марк Обейнел, - все основано на форме, пространстве и подчиненности единой цели». Марк признает, что без проблем не обходится и здесь, однако «футбольный» ИИ моделировать несколько легче, чем «бейсбольный».

Один из описанных Марком способов настройки системы ИИ в играх серии FIFA (например FIFA '99), состоит в том, что игрок бьет по воротам с вратарем, которым управляет компьютер. При этом подсчитывается: а) количество забитых мячей, которые должны были быть взяты, б) количество взятых мячей, которые должны были попасть в ворота. После тщательного анализа данных в алгоритм вводится наиболее реалистичное среднее значение.

Еще одна цель программиста - попытаться научить компьютерных игроков чувствовать пространство игрового поля. Марк утверждает, что это серьезная проблема:

Расставить футболистов на поле нетрудно. Гораздо труднее сделать так, чтобы игрок «осознавал», зачем его поставили на конкретную позицию, когда он должен оставаться на месте и в каких случаях может это место покидать, чтобы он умел правильно выбирать тактику игры и так далее. Одним словом, необходимо привить ему «чувство пространства».

Дополнительная задача для системы ИИ - компенсация потери игрока (в случае его удаления). «Игроки должны согласовано изменить свое расположение, чтобы «прикрыть» отсутствующего», - говорит Марк.

На этих экранах показано, каким образом Марк Обейнел и его сотрудники тестируют ИИ для серии игр FIFA. Обратите внимание на команды для каждого из игроков: «стремиться к мячу», «атаковать», «обороняться» и «пасовать». Номера обозначают позиции игроков на координатной сетке (поле). (Приводится с разрешения компании Electronic Arts, Inc.)

И еще совет: лучше всего создавать игровой ИИ в соответствующей тестовой среде. О чем идет речь?

Работая над искусственным интеллектом для игр FIFA, мы не использовали ни звуковых эффектов, ни графических «красивостей», - просто каркасные фигурки на плоском зеленом поле. Таким образом исключается путаница. Кроме того, на экран выводились разноцветные стрелки и линии, исходящие от игроков, которые отражали все решения ИИ при передаче мяча, определении траектории движения и т.п., - это сильно облегчало отладку программы. Не будь этого, ошибки ИИ мог распознать только программист. Словом, получилась очень эффективная и «демократичная» среда для тестирования игры, позволившая нам проводить отладку безостановочно.

«Главное - не путать реализм и интересность», - говорит Марк.

Хорошая система может выглядеть совершенно реальной, но на самом деле это далеко не так, и делается это нарочно, дабы игра стала лучше. Мы чаще нарушаем правила реального мира, чем следуем им. Например, настоящему футболисту требуется примерно 18 секунд, чтобы пробежать от одного края поля до другого; в играх FIFA это можно сделать в два раза быстрее, потому что 18 секунд для виртуального футбола - это слишком долго.

Вы еще встретитесь с Марком в главе 12, где он обсуждает интерфейс пользователя в спортивных играх.

Джей Уилсон (Jay Wilson), Monolith Productions

Джей Уилсон, ведущий дизайнер уровней игр Blood и Blood: Plasma Pak, а также руководитель проекта Blood 2: The Chosen, считает, что создание ИИ - один из самых важных этапов работы над 3D-шутерами.

По его убеждению, в индустрии игровых программ достигнут значительный прогресс в разработке ИИ. В качестве «передовиков» он называет игры Half-Life, Unreal и StarCraft. Тем не менее Джей согласен, что далеко не каждому нравятся сетевые игры, и говорит, что его отец, к примеру, играет в компьютерные игры, чтобы отдохнуть, а не посоревноваться (что предлагается в большинстве многопользовательских игр).

Что касается ИИ для шутеров от первого лица, Джей говорит, что персонажи игры обычно воспроизводят не реальных людей, а скорее виртуальных противников из сетевой битвы в дефматч-режиме. А именно:

Компьютерные персонажи современных шутеров, наделенных продвинутым ИИ, играют как боты, а не реальные люди. Увы, лично мне хочется, чтобы соперничающие со мной «железные мозги» вели себя, подобно живым людям: бежали в укрытие, роняли оружие, стреляли и промахивались и так далее.

Любителям веб-серфинга обязательно следует заглянуть на знаменитый веб-сайт www.cris.com/-swoodcoc/ai.html, посвященный искусственному интеллекту для компьютерных игр. На странице Game AI проблема создания ИИ обсуждается на примере ряда новых и классических игр для ПК. Кроме того, здесь есть раздел со множеством ссылок на другие веб-сайты по данному вопросу. Не проходите мимо!

Джею Уилсону хочется, чтобы враги в шутерах действовали, как люди, и время от времени допускали ошибки, а не были бы идеальными ботами из дефматч-режима. Внимание: враг прячется за стойкой (скриншот из игры Blood 2)! (Приводится с разрешения Monolith Productions, Inc.)